/*
 * Projeto idealizado para ensino interativo com uso de recursos Flash e Java
 * O uso destes codigos eh de extrema restricao, valendo dos direitos dos seus
 * desenvolvedores
 *
 * @author Fabricio Silva
 */

package br.com.dimensaointerativo.visao;

import br.com.dimensaointerativo.controller.AlunoController;
import br.com.dimensaointerativo.dto.AlunoDTO;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.List;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * Janela responsavel pelo cadastro
 * de alunos
 * @author Fabricio Silva
 *
 */
public class GerenciarAluno extends JFrame {

	private static final long serialVersionUID = 1L;
	private Container container = getContentPane();

	/*
	 * Construtor
	 */
	public GerenciarAluno() {
		super("..::Cadastro de Alunos::..");
		container.setLayout(new BorderLayout());

		desenharJanela(container);

		setSize(400, 500);
		setVisible(true);

		//Centralizando a Janela
		setLocationRelativeTo(null);
	}

	public void desenharJanela(final Container c) {

		//criando objetos
		JPanel camposInterno = new JPanel(new FlowLayout());
		JPanel areaBotoes  = new JPanel(new FlowLayout());

		//criando objetos internos
		JLabel lblNome = new JLabel("Nome: ");
		final JTextField txtNome = new JTextField(30);
                final List lst = new List(20, false);
                                
                txtNome.addKeyListener(new KeyListener() {
                    AlunoController ac = new AlunoController();
                    public void keyPressed(KeyEvent ev) {
                        // limpando a lista
                        lst.removeAll();

                        // preenchendo a lista com as informacoes especificadas no filtro digitado pelo operador
                        for (AlunoDTO a : ac.consultaQuente(txtNome.getText())) {
                            lst.add(a.getNome());
                        }
                        
                    }
                    public void keyTyped(KeyEvent ev) {}
                    public void keyReleased(KeyEvent ev) {}
                });
		camposInterno.add(lblNome);
		camposInterno.add(txtNome);

		//ajustando container geral
		container.add(camposInterno, BorderLayout.NORTH);
                container.add(lst, BorderLayout.CENTER);
                container.add(areaBotoes, BorderLayout.SOUTH);
	}

}
